import tkinter as tk
from tkinter import messagebox
import random

class GuessingGame:
    def __init__(self, master):
        self.master = master
        master.title("Угадай число")

        self.target_number = random.randint(1, 128)

        self.label = tk.Label(master, text="Угадайте число от 1 до 128:")
        self.label.pack()

        self.entry = tk.Entry(master)
        self.entry.pack()

        self.check_button = tk.Button(master, text="Проверить", command=self.check_guess)
        self.check_button.pack()

        self.result_label = tk.Label(master, text="")
        self.result_label.pack()

    def check_guess(self):
        try:
            guess = int(self.entry.get())
            if guess < 1 or guess > 128:
                raise ValueError("Число вне диапазона")

            if guess < self.target_number:
                self.result_label.config(text="Загаданное число больше")
            elif guess > self.target_number:
                self.result_label.config(text="Загаданное число меньше")
            else:
                self.result_label.config(text="Вы угадали!")
                messagebox.showinfo("Победа!", "Вы угадали число!")
                self.reset_game()
        except ValueError as e:
            messagebox.showerror("Ошибка ввода", "Пожалуйста, введите целое число от 1 до 128.")
            self.entry.delete(0, tk.END)

    def reset_game(self):
        self.target_number = random.randint(1, 128)
        self.entry.delete(0, tk.END)
        self.result_label.config(text="")

if __name__ == "__main__":
    root = tk.Tk()
    game = GuessingGame(root)
    root.mainloop()
